TABLA DE PÁGINAS A DOS NIVELES

En la mayoría de los sistemas hay una tabla de páginas por proceso, pero cada proceso puede ocupar una cantidad enorme de memoria virtual. Evidentemente la cantidad de memoria dedicada sólo a la tabla de páginas puede ser inaceptable. Para solucionar este problema, la mayoría de los esquemas de memoria virtual almacenan las tablas de páginas en la memoria virtual en vez de en la memoria real. Esto significa que estas tablas de páginas están sujetas a paginación. Algunos procesadores usan un esquema de dos niveles para organizar grandes tablas de páginas. En este esquema, hay un directorio de páginas en el que cada entrada señala a una tabla de páginas. Así pues, si la longitud del directorio de páginas es X, y la longitud máxima de una tabla de páginas es Y, un proceso puede estar formado por hasta X x Y páginas. Normalmente, la longitud máxima de una tabla de páginas está limitada a una página.

La siguiente figura es un esquema típico para utilizarlo con direcciones de 32 bits. Si se considera el direccionamiento a nivel de bytes y 4 kbytes páginas, entonces el espacio de direcciones virtual es de 4Gbytes, compuesto por 2^20 páginas. Si cada una de estas páginas se traduce a 4 bytes en la entrada (PTE) de la tabla de páginas, se puede crear una tabla de páginas de usuario compuesta de 2^20 PTE para lo que se necesitan 4Mbytes. Esta enorme tabla de usuario se puede guardar en la memoria virtual y traducirla por una tabla de páginas raíz con 2^10 entradas (PTE) que ocupan 4Kbytes de memoria principal.




En la siguiente figura se muestran los pasos necesarios para la traducción de direcciones de este esquema. La página raíz siempre permanece en la memoria principal. Los 10 primeros bits de la dirección virtual se usan como índice en la página raíz para encontrar un PTE para una página para una tabla de usuario. Si esa página no está en la memoria principal, se produce un fallo de página. Si la página está en memoria principal, entonces los siguientes 10 primeros bits de la dirección virtual se utilizan como índice en la página PTE de usuario para encontrar el PTE referenciado por la dirección virtual.